Roger Dannenburg's
early paper on interactivity,. In
it he talks about the CMT midi toolkit and issues around implementing
interactive systems.
A couple of
interesting observations are made.
He talks about implementation issues from the point of view of a tool
maker. It is interesting that some
of the issues represent tasks that must be accomplished by a non-skilled user,
and some are issues around techniques of implementation that are only a tool
maker's problems.
His list:
á Input. It is often necessary to handle multiple streams
of input, but stopping to wait
for input is usually
not possible.
á Concurrency. Music generation typically requires many
independent threads of
control, but
traditional approaches add program complexity.
á Synchronization.
Concurrent tasks must
communicate and share data.
á Memory
Management. Data objects are
often allocated in response to input and
must be carefully
deallocated when no longer needed.
á Sequencing. Programming is essential for interactive
systems, but event sequences
such as musical
scores are clumsy to express as programs.
á Parameter
adjustment. Compiled
programming languages contribute to execution
speed, but make it
awkward to adjust and refine many parameters.
á Scheduling. Long computations can interfere with the
real-time responsiveness of
interactive programs.
á Testing. Interactive systems, especially those with
multiple performers, are difficult
to test because
testing requires real-time input and because input may not be
reproducible for
debugging purposes.
Choice of input,
sequencing, parameter adjustments, and testing are user activities.
All of the above are
tool maker problems that must be solved.
Roger is more looking for the how to solve these problems rather than
the how to make them user friendly.